定义int a[ ]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是________。
来源:百度知道 编辑:UC知道 时间:2024/05/10 10:09:25
能把整个运算过程给我详细详细描述一下吗?谢谢了!
这是C语言,当年我的成绩是优秀。这个很简单啊。首先它是定义了一个整型数组a,数组里有6个元素,分别是:
a[0]=1,
a[1]=2,
a[2]=3,
a[3]=4,
a[4]=5,
a[5]=6,
记住C语言里数组的下标永远是从0开始的。接着定义了一个指针变量p,*p=a的意思是把数组a的起始地址赋给指针变量p,即现在p指向a[0],p有值,但不是一个数,而是a[0]在内存中的地址。
表达式(*++p)++,首先做括号里面的,
++在C语言里是单增运算符{(--是单减运算符),++在一个量的前面时,该量先增加1,然后输出该量,++在一个量的后面,先输出该量,然后量自增1}
*++p就是让p增加1,是什么意思呢?刚才p是指向a[0],现在p增加1,也就是现在p指向a[1]了,(*++p)++的值就是a[1]的值了,也即(*++p)++=2。但是输出值2后,p又指向a[2]了。
是2
由于*p=a,p指向了a的第一个元素a[0]
(*++p)++
这个先执行++p
p指向a[1]
*p就是a[2]
转化为a[2]++,由于++先算表达式值在自加1,所以这个表达式的值为2
#include <stdio.h>
void main()
flag = 1;
for ( n = 2; n <= sqrt( ri ); n++ )
if ( ri % n == 0 )
{
flag = 0;
break;
}
若定义int a[ ][3]={1,2,3,4,5,6,7};第一维大小
定义int a[2][3]之后
定义int a[ ]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是________。
为什么不能定义成int a=b=c=2;而要定义成int a=2,b=2,c=2;
int *a=0,*b=0; 定义语句对吗
定义unsigned int a;输入-1程序怎么处理
若定义Int a[5],试说明引用a,a[0]和&a[1]的含义?
unsigned int a=2;int b = -3;
若有定义:int a[4][10];
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?